﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace GUI.Danhmuc
{
    using EXT;
    using DAL.Entities;
    using BLL;
    using DevExpress.XtraEditors;
    public partial class frmChucnang : Form
    {
        public frmChucnang()
        {
            InitializeComponent();
        }

        DanhmucBLL Danhmuc_BLL = new DanhmucBLL();
        public event MyEvent_LoadData MyEvent_LoadData_Chitiet = null;

        public void Load_Nhomchucnang()
        {
            var dt = Danhmuc_BLL.Danhmuc_Select_By_Kind("Nhomchucnang");
            if (dt!=null)
            {
                if (dt.Rows.Count>0)
                {
                    gleNhomchucnang.Properties.DataSource = dt;
                }
            }
        }

        private void frmChucnang_Load(object sender, EventArgs e)
        {
            Load_Nhomchucnang();
        }

        private void gleNhomchucnang_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            if (e.Button.Index == 1)
            {
                frmNhomchucnang frm_Nhomchucnang = new frmNhomchucnang();
                frm_Nhomchucnang.MyEvent_LoadData_ChitietQ += new MyEvent_LoadData(frm_Nhomchucnang_MyEvent_LoadData_ChitietQ);
                frm_Nhomchucnang.ShowDialog();
            }
        }

        void frm_Nhomchucnang_MyEvent_LoadData_ChitietQ(object sender, ELoadData e)
        {
            if (e.IsLoadData)
            {
                Load_Nhomchucnang();
            }
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (gleNhomchucnang.EditValue==null)
            {
                XtraMessageBox.Show("Chưa chọn nhóm chức năng!\n\nVui lòng chọn nhóm chức năng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                gleNhomchucnang.Focus();
                return;
            }

            if (txtName.Text.Trim()=="")
            {
                XtraMessageBox.Show("Chưa nhập mã chức năng!\n\nVui lòng nhập mã chức năng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtName.Focus();
                return;
            }

            if (Danhmuc_BLL.IsExists(new Danhmuc() { Kind = this.Name.Replace("frm", ""), Name = txtName.Text.Trim() }))
            {
                XtraMessageBox.Show("Mã chức năng này đã có!\n\nVui lòng nhập mã chức năng mới", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtName.Focus();
                return;
            }

            if (txtName.Text.Trim().IndexOf(' ') >=0)
            {
                XtraMessageBox.Show("Mã chức năng không nên có khoản trống!\n\nVui lòng nhập lại mã chức năng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtName.Focus();
                return;
            }

            if (txtSVal1.Text.Trim()=="")
            {
                XtraMessageBox.Show("Chưa nhập tên chức năng!\n\nVui lòng nhập tên chức năng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtSVal1.Focus();
                return;
            }

            string Note = "";
            if (txtNote.Text.Trim()!="")
            {
                Note = txtNote.Text.Trim().ToUpperFirst();
            }

            Danhmuc o = new Danhmuc()
            {
                Id=Guid.NewGuid(),
                Id_Parent=gleNhomchucnang.EditValue.GetGuid(),
                Kind=this.Name.Replace("frm",""),
                Name=txtName.EditValue.ToString().Trim(),
                SVal1 = txtSVal1.EditValue.ToString().Trim().ToUpperFirst(),
                Note=Note,
                Show=true
            };

            if (XtraMessageBox.Show("Bạn có chắc muốn thêm chức năng này không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                gleNhomchucnang.Focus();
            }
            else
            {
                if (Danhmuc_BLL.Danhmuc_Insert(o))
                {
                    if (MyEvent_LoadData_Chitiet != null)
                    {
                        MyEvent_LoadData_Chitiet(this, new ELoadData() { IsLoadData = true });
                    }

                    XtraMessageBox.Show("Thêm chức năng thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtName.EditValue = null;
                    txtSVal1.EditValue = null;
                    txtNote.EditValue = null;
                    gleNhomchucnang.Focus();
                }
                else
                {
                    XtraMessageBox.Show("Không thể lưu\n\n Kiểm tra lại kết nối đến CSDL", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    gleNhomchucnang.Focus();
                }
            }
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
